package com.quanyan.place.service;

import com.quanyan.api.APIResponse;
import com.quanyan.orderpay.response.mq.WithdrawTransferNotify;
import com.quanyan.place.entity.PromoteRewardSettleCandidate;
import com.quanyan.place.entity.apireq.*;

/**
 * Created by yuanxuebing on 16/12/13.
 */
public interface PlacePromoteService {
    APIResponse getPlacePromoteOrders(ReqPromoteOrders reqVo);

    APIResponse getPlacePromoteOrdersEx(ReqPromoteOrders reqVo);

    APIResponse getPlacePromotionByAdmin(ReqPromotionByAdmin reqVo);

    APIResponse getPromoteRewards(ReqPromoteRewards reqVo);

    APIResponse getPromoteWithdrawals(ReqPromoteWithdrawals reqVo);

    APIResponse getPromoteReconciliation(ReqPromoteReconciliation reqVo);

    APIResponse promoteRewardPayCallback(WithdrawTransferNotify notify);

    // 结算推广订单
    void promoteSettleTask();

    // 计算推广佣金
    void promoteRewardSettleTask() throws Exception;

    // 计算单个人的佣金
    void settlePromotionReward(PromoteRewardSettleCandidate candidate) throws Exception;
}
